#ifndef MYSTERYGUTS_H
#define MYSTERYGUTS_H

#include "vpguts.h"

class MysteryGuts : public VPGuts
{
	public:
		MysteryGuts(uint8 MinPairCard, PayFreqType,
			int32* payTable, int32 maxCols, int32 maxEvents);

		virtual Shue* newShue(const ShueGameInfo &sgi);
		virtual CardMgr* getCardMgr();
		virtual int32 CalcPayout(int32* pEvent, VPHand* pHand, int32 bet,
			CalcPayoutMode, uint8* subGameData, int32 length);

		virtual void createSubGameData(uint8* subGameData, int32* length, int32 maxlength);
		virtual void restoreSubGameData(uint8* subGameData, int32* length);

	protected:
		int32 classifyHand(VPHand*);

		int32 findIndex(uint32 v);

		void CheckWeights();

	protected:
		uint8 minPair;
};

inline
MysteryGuts::MysteryGuts(uint8 MinPairCard, PayFreqType payFreq,
	int32* payTable, int32 maxCols, int32 maxEvents)
		: VPGuts(payFreq, payTable, maxCols, maxEvents)
{
	minPair = MinPairCard;
}

#endif
